Open Search
📘 ¿Qué es OpenSearch?
Amazon OpenSearch Service es un servicio completamente administrado que permite buscar, analizar y visualizar grandes volúmenes de datos en tiempo real. Es la evolución del servicio Amazon Elasticsearch, basado en el proyecto OpenSearch (open-source, liderado por AWS).
Ideal para observabilidad, búsqueda full-text, analytics de logs y monitoreo de seguridad.
🧩 Componentes clave de OpenSearch
| Componente | Descripción |
|---|---|
| Cluster | Conjunto de nodos que almacena, indexa y busca datos |
| Index | Similar a una base de datos relacional. Contiene documentos relacionados |
| Document | Unidad básica de información (formato JSON) |
| Shard | Fragmento de un índice (para escalabilidad y performance) |
| Replica | Copia de un shard para alta disponibilidad |
| Dashboards | Interfaz de visualización y análisis de datos (similar a Kibana) |
| Ingest pipeline | Flujo que permite transformar datos al ser indexados |
🔍 Casos de uso principales
-
🔎 Búsqueda full-text en aplicaciones web o móviles
-
📊 Análisis y visualización de logs (CloudWatch, Fluent Bit, etc.)
-
🛡️ Monitoreo de seguridad (SIEM con OpenSearch Dashboards)
-
🧠 Machine learning ligero para detección de anomalías
-
🚨 Alerting con condiciones sobre series temporales
⚙️ Flujo típico de uso
[Fuente de datos] → [Ingesta (Logstash, Fluent Bit, Lambda)] → [OpenSearch] → [Dashboards / API]
Fuentes comunes:
-
Amazon CloudWatch Logs
-
Amazon Kinesis Data Firehose
-
Fluent Bit, Logstash
-
Aplicaciones personalizadas (SDK, HTTP API)
🛠️ Funcionalidades avanzadas
| Funcionalidad | Descripción |
|---|---|
| OpenSearch Dashboards | Interfaz web para visualizar datos con gráficos, tablas, mapas, etc. |
| Alerting | Crea condiciones y notificaciones por email, Slack, webhook, etc. |
| Anomaly Detection | Detección de comportamiento inusual en series temporales |
| Index Lifecycle Mgmt | Controla el ciclo de vida del almacenamiento: hot → warm → cold → delete |
| Fine-grained access | Control de acceso granular por usuarios y roles (IAM + RBAC) |
| Encryption | En tránsito (TLS) y en reposo (KMS) |
📦 Integraciones comunes
| Servicio AWS | Integración |
|---|---|
| CloudWatch Logs | Vía Subscriptions y Firehose |
| Kinesis Firehose | Ingesta de datos a OpenSearch |
| Lambda | Generación y transformación de datos |
| S3 | Almacenamiento histórico + backups |
| EventBridge | Automatizar ingestión o alertas |
🔐 Seguridad
-
IAM + Fine-grained Access Control (RBAC)
-
Encriptación:
-
En reposo con AWS KMS
-
En tránsito (TLS 1.2)
-
-
Autenticación:
-
IAM
-
Cognito (para autenticación web a Dashboards)
-
Usuarios internos de OpenSearch
-
-
IP whitelisting / VPC access
🧰 Administración del clúster
| Parámetro | Consideración |
|---|---|
| Nodos de datos | Almacenan los datos e índices |
| Nodos de master | Coordinan el clúster (recomendado separarlos para alta disponibilidad) |
| Nodos warm/cold | Para almacenamiento a bajo costo con menos frecuencia de acceso |
| Auto-Tune | Ajustes automáticos de performance (RAM, CPU) según uso del clúster |
| Snapshot automático | A S3 para backup y restauración |
🧪 Consultas básicas (REST API)
# Buscar documentos
GET /my-index/_search
{
"query": {
"match": {
"status": "error"
}
}
}
# Insertar documento
POST /my-index/_doc
{
"user": "ana",
"action": "login",
"status": "success"
}
💰 Precios (estimados)
| Costo principal | Notas |
|---|---|
| Por hora de instancia EC2 | Según tipo (t3.medium, r6g.large, etc.) |
| Almacenamiento EBS | Por GB/mes (tipo gp3, io1, etc.) |
| Transferencia de datos | Como en cualquier servicio AWS |
| Snapshots en S3 | Según tamaño y frecuencia |
| Almacenamiento UltraWarm/Cold | Mucho más barato (~$0.024/GB-mes) |
💡 La opción Serverless para OpenSearch está en desarrollo para cargas variables.
🧠 Preguntas tipo certificación
-
¿Qué servicio te permite indexar y buscar grandes volúmenes de logs en AWS?
- ✅ Amazon OpenSearch Service
-
¿Cómo puedes visualizar datos almacenados en OpenSearch?
- ✅ Usando OpenSearch Dashboards
-
¿Cuál es el formato de los documentos en OpenSearch?
- ✅ JSON
-
¿Puedes controlar quién accede a qué índices?
- ✅ Sí, usando Fine-Grained Access Control
-
¿Puedes detectar anomalías automáticamente?
- ✅ Sí, usando Anomaly Detection plugin